func climbStairs(n int) int {
    /*
        力扣 70 爬楼梯

        使用动态规划，完全背包的方式解题
        1. dp[i]
            dp[i] 表示 爬到第 i 层台阶，由多少种趴法

        2. 递推公式
            j 表示每次可以爬 1 - j 个台阶
            dp[i] += dp[i-j]

        3. 初始化
            dp[0] = 1 
            无意义用于初始化

        4. 递归顺序
            由于爬的步数一样，前后顺序不一样也是另外一种方式，所以需要先遍历背包再遍历物品。

        5. 递推dp数组
    */

    dp := make([]int, n+1)
    dp[0] = 1
    for i:=0; i<=n; i++ {
        for j:=1; j<=2; j++ {
            if i-j >= 0 {
                dp[i] += dp[i-j]
            }
        }
    }
    return dp[n]

}